Modern computing systems are often called upon to manage and coordinate complex processes such as control systems, manufacturing processes, logistics processes, and/or the like. Many of these complex processes can be modeled using a state machine approach where the processes move from state to state based on defined transition conditions and events that govern when and if a state transition should take place. When the state machines governing these processes are relatively static (i.e., the arrangement and conditions applicable to the states and state transitions do not change much or at all over time), the management and tracking of state machines is often relatively straight forward by keeping a simple log of state transitions as they occur. However, when the rules governing a complex process are subject to frequent change and/or revision such that the arrangement of the states and/or the state transitions have to be redefined, the management and tracking of the state machines becomes increasingly more complex. For example, when the conditions that govern a transition between two states is changed, it is no longer helpful to trace or audit a previous transition between the two states against the new state transition as the current set of conditions that govern the state transition will likely not agree with the previous set of conditions used to cause the previously recorded state transition. This makes the tracing and auditing of state transitions for previous versions of the state machine very difficult to achieve.
Accordingly, it would be advantageous to improve state machine models and state machine tracking to support tracing and auditing of the state machines even though the states or state transitions in the state machine change over time.
In the figures, elements having the same designations have the same or similar functions.